package com.adderis.soft.domain.dao;

import java.util.List;

import com.adderis.soft.domain.model.Type;

/**
 * DAO for domain model class Type.
 * 
 * @see com.adderis.soft.domain.model.Type
 * @author Reda
 */
public interface ITypeDao {

	/**
	 * Persist a Type entity in the database
	 * 
	 * @param transientType
	 */
	public void persist(Type transientType);
 
	/**
	 * Remove a persisted Type from the database
	 * 
	 * @param persistentType
	 */
	public void remove(Type persistentType);
 
	/**
	 * Remove a persisted Type from the database
	 * 
	 * @param TypeId
	 */
	public void remove(Integer TypeId);
 
	/**
	 * Update a Type in the database
	 * 
	 * @param detachedType
	 * @return merged Type
	 */
	public Type merge(Type detachedType);
 
	/**
	 * Find a Type by id
	 * 
	 * @param id
	 * @return the found Type
	 */
	public Type findById(Integer id);
 
	/**
	 * Find a list of Type
	 * 
	 * @return the found Type
	 */
	public List<Type> findAll();
 
	/**
	 * Search Types
	 * 
	 * @param searchString
	 * @return the found Types
	 */
	public List<Type> search(String searchString);
	
	

}
